অ্যাপাচি HTTP ক্লায়েন্ট (Apache HTTP Client) ব্যবহার করে HTTP অনুরোধে Authentication প্রক্রিয়া বাস্তবায়ন করা একটি গুরুত্বপূর্ণ বিষয়, বিশেষত যখন সার্ভার নির্দিষ্ট ব্যবহারকারী নাম এবং পাসওয়ার্ডের মাধ্যমে অনুরোধ যাচাই করে। HTTP Authentication প্রক্রিয়া সাধারনত Basic Authentication, Digest Authentication, বা Bearer Token Authentication ব্যবহার করে।
এখানে Basic Authentication এবং Bearer Token Authentication এর উপর আলোকপাত করা হবে, কারণ এটি সবচেয়ে সাধারণ এবং ব্যবহৃত পদ্ধতি।
Basic Authentication HTTP ক্লায়েন্টের মাধ্যমে বাস্তবায়িত করতে হলে, UsernamePasswordCredentials
এবং BasicCredentialsProvider
ব্যবহার করা হয়। এই পদ্ধতিতে ক্লায়েন্টের পাঠানো HTTP অনুরোধে Authorization
হেডারে একটি এনকোডেড ব্যবহারকারী নাম এবং পাসওয়ার্ড পাঠানো হয়।
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.apache.hc.client5.http.impl.classic.HttpGet;
import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse;
import org.apache.hc.core5.auth.UsernamePasswordCredentials;
import org.apache.hc.client5.http.impl.auth.BasicCredentialsProvider;
import org.apache.hc.client5.http.impl.classic.HttpClients;
public class BasicAuthExample {
public static void main(String[] args) throws Exception {
// Basic Authentication credentials কনফিগার করা
BasicCredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(
new org.apache.hc.core5.auth.AuthScope("example.com", 80),
new UsernamePasswordCredentials("username", "password")
);
// HTTP ক্লায়েন্ট তৈরি করা
try (CloseableHttpClient httpClient = HttpClients.custom()
.setDefaultCredentialsProvider(credentialsProvider)
.build()) {
// GET অনুরোধ তৈরি করা
HttpGet request = new HttpGet("https://example.com/protected");
// অনুরোধ পাঠানো এবং প্রতিক্রিয়া গ্রহণ করা
try (CloseableHttpResponse response = httpClient.execute(request)) {
System.out.println("HTTP Response Status Code: " + response.getCode());
System.out.println("Response: " + response.getEntity());
}
}
}
}
BasicCredentialsProvider
: এটি ব্যবহারকারী নাম এবং পাসওয়ার্ড সেট করে এবং HttpClients
এর সাথে ব্যবহার করা হয়।setCredentials()
: এটি credentials প্রদান করে, যা সার্ভারের জন্য প্রমাণীকরণ হিসেবে কাজ করবে।Authorization
হেডারে এই credentials পাঠানো হয়।Bearer Token Authentication সাধারণত API-এ নিরাপত্তার জন্য ব্যবহৃত হয়, যেখানে একবার ব্যবহারকারী লগ ইন করলে একটি token প্রদান করা হয়। এই token পরে subsequent API অনুরোধগুলিতে ব্যবহার করা হয়।
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.apache.hc.client5.http.impl.classic.HttpGet;
import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse;
import org.apache.hc.core5.util.TimeValue;
import org.apache.hc.core5.http.ParseException;
import org.apache.hc.client5.http.entity.EntityBuilder;
public class BearerTokenAuthExample {
public static void main(String[] args) throws Exception {
// Bearer token
String token = "your-bearer-token-here";
// HTTP ক্লায়েন্ট তৈরি করা
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
// GET অনুরোধ তৈরি করা
HttpGet request = new HttpGet("https://example.com/api/protected");
request.setHeader("Authorization", "Bearer " + token);
// অনুরোধ পাঠানো এবং প্রতিক্রিয়া গ্রহণ করা
try (CloseableHttpResponse response = httpClient.execute(request)) {
System.out.println("HTTP Response Status Code: " + response.getCode());
System.out.println("Response: " + response.getEntity());
}
}
}
}
Authorization
হেডারে Bearer token প্রদান করা হয়, যা সার্ভার থেকে একবার প্রাপ্ত হলে প্রতিটি অনুরোধে ব্যবহার করা হয়।Digest Authentication একটি সুরক্ষিত প্রমাণীকরণ পদ্ধতি যা পাসওয়ার্ডকে সরাসরি পাঠানোর পরিবর্তে, এটি একটি হ্যাশ ফর্ম্যাটে পাঠায়। এই পদ্ধতিটি সাধারণত অ্যাপাচি HTTP ক্লায়েন্টে কনফিগার করা যেতে পারে, তবে এটি কিছুটা বেশি কনফিগারেশন প্রয়োজন।
অ্যাপাচি HTTP ক্লায়েন্টে HTTP Authentication হ্যান্ডেল করার জন্য আপনি সাধারণত Basic Authentication এবং Bearer Token Authentication ব্যবহার করবেন। Basic Authentication-এ ব্যবহারকারী নাম এবং পাসওয়ার্ড পাঠানো হয়, যেখানে Bearer Token Authentication-এ টোকেন ব্যবহার করা হয়। এই পদ্ধতিগুলির মাধ্যমে সার্ভারের নিরাপত্তা যাচাই করা যায় এবং শুধুমাত্র অনুমোদিত ব্যবহারকারীরা সংবেদনশীল তথ্য অ্যাক্সেস করতে সক্ষম হন।
Basic Authentication হল HTTP প্রোটোকলের একটি সাধারণ অথেনটিকেশন স্কিমা যেখানে ইউজারের নাম এবং পাসওয়ার্ড ক্লায়েন্ট থেকে সার্ভারে পাঠানো হয়, সাধারণত একটি HTTP হেডারে। Apache HTTP Client-এ Basic Authentication কনফিগারেশন করতে হলে আপনাকে CredentialsProvider এবং BasicAuth ব্যবহার করতে হবে।
প্রথমে, যদি আপনার প্রোজেক্টে Maven ব্যবহৃত হয়, তবে আপনাকে Apache HTTP Client-এর জন্য ডিপেনডেন্সি যুক্ত করতে হবে:
<dependency>
<groupId>org.apache.httpcomponents.client5</groupId>
<artifactId>httpclient5</artifactId>
<version>5.4</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents.core5</groupId>
<artifactId>httpcore5</artifactId>
<version>5.4</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents.httpclient5</groupId>
<artifactId>httpclient5</artifactId>
<version>5.4</version>
</dependency>
Apache HTTP Client-এ Basic Authentication কনফিগার করতে, আপনাকে CredentialsProvider
এবং BasicCredentials
ব্যবহার করতে হবে। নিচে একটি উদাহরণ দেওয়া হলো যেখানে একটি HTTP GET রিকোয়েস্ট Basic Authentication দিয়ে পাঠানো হচ্ছে।
import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.methods.HttpGet;
import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse;
import org.apache.hc.core5.auth.AuthScope;
import org.apache.hc.core5.auth.BasicCredentialsProvider;
import org.apache.hc.core5.auth.UsernamePasswordCredentials;
import org.apache.http.impl.client.RequestConfig;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
public class HttpClientWithBasicAuth {
public static void main(String[] args) {
// CredentialsProvider সেটআপ
BasicCredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(
new AuthScope("your-api-endpoint.com", 80), // API হোস্ট এবং পোর্ট
new UsernamePasswordCredentials("username", "password") // ইউজারনেম এবং পাসওয়ার্ড
);
// HTTP ক্লায়েন্ট কনফিগারেশন তৈরি
try (CloseableHttpClient httpClient = HttpClients.custom()
.setDefaultCredentialsProvider(credsProvider) // CredentialsProvider সেট করা
.build()) {
// HTTP GET রিকোয়েস্ট তৈরি
HttpGet request = new HttpGet("https://your-api-endpoint.com/resource");
// রিকোয়েস্ট পাঠানো এবং রেসপন্স প্রাপ্তি
try (CloseableHttpResponse response = httpClient.execute(request)) {
String responseBody = EntityUtils.toString(response.getEntity());
System.out.println("Response: " + responseBody);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
BasicCredentialsProvider
ব্যবহার করে ইউজারনেম এবং পাসওয়ার্ড নির্ধারণ করা হয়। এখানে AuthScope
ব্যবহার করে API এর হোস্ট এবং পোর্টও উল্লেখ করা হয়।CredentialsProvider
-এ সংযুক্ত করতে ব্যবহৃত হয়।HttpClients.custom()
ব্যবহার করে HTTP ক্লায়েন্ট কনফিগার করা হয় এবং এতে setDefaultCredentialsProvider()
ব্যবহার করে কনফিগারেশন যোগ করা হয়।execute()
মেথড দিয়ে রিকোয়েস্টটি পাঠানো হয়েছে।Apache HTTP Client Basic Authentication চালানোর সময়, এটি স্বয়ংক্রিয়ভাবে Authorization
হেডারে ইউজারনেম এবং পাসওয়ার্ড সংযুক্ত করে। উদাহরণস্বরূপ, HTTP হেডারে যা পাঠানো হয় তা এরকম দেখতে হতে পারে:
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
এখানে dXNlcm5hbWU6cGFzc3dvcmQ=
হল base64 এ এনকোড করা username:password
।
Apache HTTP Client-এ Basic Authentication কনফিগার করতে CredentialsProvider এবং UsernamePasswordCredentials ব্যবহার করা হয়। এটি HttpClients.custom()
ব্যবহার করে ক্লায়েন্ট কনফিগার করে এবং Authorization
হেডার হিসেবে ইউজারনেম এবং পাসওয়ার্ড পাঠায়।
Digest Authentication হল একটি নিরাপত্তা প্রোটোকল যা HTTP প্রোটোকলে ব্যবহৃত হয়, বিশেষত ক্লায়েন্ট এবং সার্ভারের মধ্যে নিরাপদ যোগাযোগের জন্য। এটি Basic Authentication এর তুলনায় বেশি সুরক্ষিত, কারণ এটি পাসওয়ার্ডগুলো সরাসরি পাঠায় না, বরং একটি হ্যাশ বা Digest পাঠায়, যা সার্ভারের সাথে মিলিয়ে যাচাই করা হয়। এই প্রক্রিয়ায়, পাসওয়ার্ড সরাসরি ট্রান্সমিট করা হয় না, তাই এটি Man-in-the-Middle Attacks থেকে সুরক্ষা প্রদান করে।
WWW-Authenticate
হেডার পাঠায়, যেখানে Digest Authentication এর প্রয়োজনীয় তথ্য থাকে।Apache HTTP Client ব্যবহার করে Digest Authentication সেটআপ করা সম্ভব। এটি HttpClient
কনফিগার করতে DigestScheme
ব্যবহার করে করা হয়, যা HttpRequest
বা HttpClient
এর মাধ্যমে অনুরোধ পাঠানোর সময় অন্তর্ভুক্ত করা হয়।
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.auth.DigestScheme;
import org.apache.http.impl.auth.Credentials;
import org.apache.http.impl.auth.UsernamePasswordCredentials;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
public class DigestAuthExample {
public static void main(String[] args) {
try {
// সার্ভারের Digest Authentication credentials সেট করা
String username = "testuser";
String password = "testpassword";
// CredentialsProvider তৈরি করে Digest Authentication credentials সেট করা
BasicCredentialsProvider credsProvider = new BasicCredentialsProvider();
Credentials credentials = new UsernamePasswordCredentials(username, password);
credsProvider.setCredentials(new org.apache.http.auth.AuthScope("example.com", 80), credentials);
// HttpClientBuilder ব্যবহার করে Digest Authentication কনফিগার করা
HttpClient httpClient = HttpClients.custom()
.setDefaultCredentialsProvider(credsProvider)
.build();
// GET অনুরোধ তৈরি করা
HttpGet httpGet = new HttpGet("https://example.com/protected-resource");
// HTTP অনুরোধ পাঠানো
HttpResponse response = httpClient.execute(httpGet);
// সার্ভারের প্রতিক্রিয়া স্ট্যাটাস কোড পড়া
System.out.println("Response Status: " + response.getStatusLine());
// প্রতিক্রিয়া বডি পড়া
HttpEntity entity = response.getEntity();
if (entity != null) {
String responseBody = EntityUtils.toString(entity);
System.out.println("Response Body: " + responseBody);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Digest Authentication Credentials তৈরি করা
String username = "testuser";
String password = "testpassword";
username
এবং password
হল সেই ব্যবহারকারীর তথ্য যাকে Digest Authentication এর জন্য ব্যবহার করা হবে।CredentialsProvider তৈরি করা
BasicCredentialsProvider credsProvider = new BasicCredentialsProvider();
Credentials credentials = new UsernamePasswordCredentials(username, password);
credsProvider.setCredentials(new AuthScope("example.com", 80), credentials);
BasicCredentialsProvider
এবং UsernamePasswordCredentials
ব্যবহার করে Digest Authentication এর জন্য ব্যবহারকারী তথ্য (ইউজারনেম এবং পাসওয়ার্ড) সেট করা হয়। AuthScope
দ্বারা প্রোক্সি বা সার্ভারের হোস্ট এবং পোর্ট নির্দিষ্ট করা হয়।HttpClient তৈরি করা
HttpClient httpClient = HttpClients.custom()
.setDefaultCredentialsProvider(credsProvider)
.build();
HttpClients.custom()
ব্যবহার করে কাস্টম HttpClient
তৈরি করা হয়, যেখানে Digest Authentication জন্য credsProvider
সেট করা হয়।GET অনুরোধ তৈরি করা এবং পাঠানো
HttpGet httpGet = new HttpGet("https://example.com/protected-resource");
HttpResponse response = httpClient.execute(httpGet);
HttpGet
ব্যবহার করে একটি GET অনুরোধ তৈরি করা হয়েছে, যা সার্ভারের প্রটেক্টেড রিসোর্সের জন্য পাঠানো হচ্ছে।প্রতিক্রিয়া এবং বডি পড়া
String responseBody = EntityUtils.toString(entity);
System.out.println("Response Body: " + responseBody);
Digest Authentication হল একটি নিরাপদ অথেনটিকেশন পদ্ধতি, যা HTTP অনুরোধে হ্যাশড (hashed) পাসওয়ার্ড প্রেরণ করে। Apache HTTP Client ব্যবহার করে Digest Authentication সহজেই কনফিগার করা যায় এবং সার্ভারের সাথে নিরাপদ যোগাযোগ করা সম্ভব। এটি বিশেষ করে অনলাইন নিরাপত্তার ক্ষেত্রে ব্যবহৃত হয়, যেখানে পাসওয়ার্ড নিরাপদে ব্যবহৃত হতে হয় এবং সরাসরি ট্রান্সমিট করা হয় না।
Bearer Token Authentication হল একটি জনপ্রিয় Authentication পদ্ধতি যা API-তে অ্যাক্সেস পাওয়ার জন্য access token ব্যবহার করে। এই ধরনের authentication-এ, HTTP request-এর header-এ একটি Bearer token পাঠানো হয়, যা সার্ভারকে ব্যবহারকারীর অনুমোদন নিশ্চিত করে। এই token সাধারণত OAuth 2.0 এর মাধ্যমে পাওয়া যায় এবং API-এ প্রবেশাধিকার নিশ্চিত করার জন্য ব্যবহার করা হয়।
Apache HTTP Client ব্যবহার করে Bearer Token Authentication হ্যান্ডল করা খুবই সহজ। এটি করার জন্য, আপনাকে Authorization header-এ Bearer <token>
পাঠাতে হবে।
HttpPost
বা HttpGet
এর headers-এ Authorization
নামক একটি header সেট করতে হবে।"Bearer <access_token>"
যেখানে <access_token>
হল আপনার Bearer token।import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.apache.http.client.methods.HttpUriRequestBase;
import org.apache.http.HttpHeaders;
public class ApacheHttpClientBearerTokenAuthExample {
public static void main(String[] args) {
// Bearer Token (Access Token)
String bearerToken = "your_bearer_token_here";
// API Endpoint URL
String url = "https://api.example.com/protected-resource";
// HttpClient তৈরি করা
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
// HttpGet অবজেক্ট তৈরি
HttpUriRequestBase request = new HttpGet(url);
// Authorization header এ Bearer token পাঠানো
request.setHeader(HttpHeaders.AUTHORIZATION, "Bearer " + bearerToken);
// Request পাঠানো এবং Response গ্রহণ করা
HttpResponse response = httpClient.execute(request);
// Response থেকে স্ট্যাটাস কোড এবং কন্টেন্ট নেওয়া
int statusCode = response.getStatusLine().getStatusCode();
System.out.println("Response Code: " + statusCode);
HttpEntity responseEntity = response.getEntity();
if (responseEntity != null) {
String responseBody = EntityUtils.toString(responseEntity);
System.out.println("Response Body: " + responseBody);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
request.setHeader(HttpHeaders.AUTHORIZATION, "Bearer " + bearerToken)
: এই লাইনটি Authorization header তৈরি করে এবং সেখানে Bearer token পাঠায়। এখানে "Bearer "
এর পরে আপনার access token যোগ করতে হবে।HttpGet
request ব্যবহার করা হয়েছে, তবে আপনি HttpPost
, HttpPut
ইত্যাদি ব্যবহারও করতে পারেন, আপনার প্রয়োজন অনুযায়ী।EntityUtils.toString(responseEntity)
ব্যবহার করে response body রিড করা হয়েছে।আপনার Bearer token সাধারণত একটি OAuth 2.0 ফ্লো অনুসরণ করে প্রাপ্ত হয়। সাধারণত এটি একটি access token হয়, যা আপনি login অথবা API-এ প্রবেশের জন্য ব্যবহারকারীর অনুমোদন প্রক্রিয়ার মাধ্যমে অর্জন করেন।
Apache HTTP Client-এ Bearer Token Authentication হ্যান্ডল করা সহজ। আপনাকে কেবল Authorization
header-এ "Bearer <token>"
পাঠাতে হবে। এর মাধ্যমে আপনি নিরাপদভাবে API-তে প্রবেশাধিকার পেতে পারেন এবং এটি সাধারণত OAuth 2.0 ফ্লো অনুসরণ করে করা হয়। Bearer token-এর নিরাপত্তা নিশ্চিত করতে সবসময় HTTPS ব্যবহার করা উচিত।
অ্যাপাচি HTTP ক্লায়েন্টের মাধ্যমে যখন আপনি একটি সার্ভারের সাথে যোগাযোগ করতে চান, তখন প্রায়শই অটেন্টিকেশন প্রক্রিয়া ব্যবহৃত হয়। প্রাথমিকভাবে, এটি HTTP বেসিক অটেন্টিকেশন বা ডাইজেস্ট অটেন্টিকেশনের মাধ্যমে হতে পারে, তবে কখনও কখনও আপনার প্রয়োজন হতে পারে কাস্টম অটেন্টিকেশন মেকানিজম তৈরি করার জন্য।
কাস্টম অটেন্টিকেশন মেকানিজম তৈরি করার জন্য, আপনাকে AuthScheme এবং AuthCache ব্যবহার করতে হবে, যার মাধ্যমে আপনি সার্ভারের সাথে নিরাপদে যোগাযোগ করার জন্য কাস্টম অটেন্টিকেশন প্রক্রিয়া কনফিগার করতে পারেন।
ধরা যাক, আমাদের কাস্টম অটেন্টিকেশন স্কিম ব্যবহার করে একটি CustomAuthScheme
তৈরি করতে হবে, যা সার্ভারের কাছে অটেন্টিকেশন ইনফরমেশন পাঠাবে।
import org.apache.http.auth.AuthScheme;
import org.apache.http.auth.AuthenticationException;
import org.apache.http.auth.Credentials;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.HttpResponse;
import org.apache.http.impl.client.RequestConfig;
import org.apache.http.HttpHost;
public class CustomAuthSchemeExample {
public static class CustomAuthScheme implements AuthScheme {
@Override
public String getSchemeName() {
return "CustomAuth";
}
@Override
public void processChallenge(org.apache.http.Header header) throws AuthenticationException {
// আপনার কাস্টম চ্যালেঞ্জ প্রক্রিয়া এখানে থাকবেঃ চ্যালেঞ্জ প্রক্রিয়া যেমন সার্ভারের পাঠানো নির্দিষ্ট হেডার বিশ্লেষণ করা।
}
@Override
public String authenticate(Credentials credentials, org.apache.http.HttpRequest request) throws AuthenticationException {
// কাস্টম অটেন্টিকেশন স্কিম ব্যবহার করে অটেন্টিকেশন হেডার তৈরি করা
return "CustomAuth " + credentials.getUserPrincipal().getName();
}
@Override
public org.apache.http.Header authenticateHeader(Credentials credentials, org.apache.http.HttpRequest request) throws AuthenticationException {
return new org.apache.http.message.BasicHeader("Authorization", authenticate(credentials, request));
}
@Override
public void init(org.apache.http.HttpParams params) {
// ইনিশিয়ালাইজেশন কোড
}
@Override
public boolean isComplete() {
return false;
}
@Override
public boolean isConnectionBased() {
return false;
}
}
public static void main(String[] args) {
try {
// RequestConfig তৈরি করা
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(5000)
.setSocketTimeout(5000)
.build();
// কাস্টম অটেন্টিকেশন স্কিম সেট করা
CloseableHttpClient httpClient = HttpClients.custom()
.addInterceptorFirst(new CustomAuthScheme()) // কাস্টম অটেন্টিকেশন স্কিম ব্যবহার
.setDefaultRequestConfig(requestConfig)
.setRetryHandler(new DefaultHttpRequestRetryHandler())
.build();
// HTTP GET রিকোয়েস্ট তৈরি
HttpGet httpGet = new HttpGet("http://example.com");
HttpResponse response = httpClient.execute(httpGet);
// রেসপন্স স্ট্যাটাস দেখানো
System.out.println("Response Status: " + response.getStatusLine().getStatusCode());
} catch (Exception e) {
e.printStackTrace();
}
}
}
AuthScheme
ইন্টারফেস ইমপ্লিমেন্ট করা হয়েছে। কাস্টম অটেন্টিকেশন স্কিমে তিনটি প্রধান মেথড রয়েছে:getSchemeName()
: অটেন্টিকেশন স্কিমের নাম প্রদান করে, যা সাধারণত সার্ভারের সাথে যোগাযোগ করার জন্য ব্যবহৃত হয়।authenticate()
: এখানে আপনি কাস্টম অটেন্টিকেশন হেডার তৈরি করবেন। এটি অটেন্টিকেশন ক্রিডেনশিয়ালসের উপর ভিত্তি করে অটেন্টিকেশন স্ট্রিং তৈরি করে।authenticateHeader()
: এটি মূলত অটেন্টিকেশন হেডারটি HTTP রিকোয়েস্টে যোগ করতে ব্যবহৃত হয়।addInterceptorFirst()
মেথডের মাধ্যমে কাস্টম স্কিমটি ক্লায়েন্টের সাথে যুক্ত করা হয়েছে।আপনি যদি আরো জটিল অটেন্টিকেশন প্রক্রিয়া ব্যবহার করতে চান (যেমন JWT, OAuth, বা অন্য কাস্টম প্রোটোকল), তবে CustomAuthScheme
ক্লাসের মধ্যে সেই অনুযায়ী প্রক্রিয়া তৈরি করতে হবে।
অ্যাপাচি HTTP ক্লায়েন্টে কাস্টম অটেন্টিকেশন স্কিম তৈরি করা সম্ভব, যা আপনাকে প্রয়োজনীয় অটেন্টিকেশন প্রক্রিয়া কাস্টমাইজ করতে সাহায্য করে। AuthScheme
ইন্টারফেস ইমপ্লিমেন্ট করে এবং HttpClient
কনফিগারেশনে যুক্ত করে, আপনি কাস্টম অটেন্টিকেশন ব্যবস্থা তৈরি করতে পারেন যা বিভিন্ন প্রকার নিরাপত্তা প্রোটোকলের প্রয়োগে সাহায্য করবে।
common.read_more